// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Nyerje ingyenes pénzt Energy Win Online Casino-ban, magyar nyelven is elérhető játékokkal! – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Nyerje ingyenes pénzt Energy Win Online Casino-ban, magyar nyelven is elérhető játékokkal!

Nyerje ingyenes pénzt Energy Win Online Casino-ban, magyar nyelven is elérhető játékokkal!

Gratis pénznyerés lehetőségek az Energy Win Online Casino-ban

Tudtad, hogy a Energy Win Online Casino-ban lehetőség van gratis pénznyerésre? Magyarországból is elérhető játékok, nagy díjazások és rendszeres promóciók várják a játékosokat. Regisztrálás után ingyenesen kipróbálhatsz néhány játékot, és még nyereményeket is szerezhetsz. A hűségprogram is lehetőséget biztosít a gratis pénznyerésre. Ne hagyd el, hogy kihasználjad ezeket a lehetőségeket, és növeljék a nyerésed!

Did you know that there are opportunities for free money wins at Energy Win Online Casino? Games, big prizes and regular promotions are available for players from Hungary. After registration, you can try some games for free and even win prizes. The loyalty program also offers the opportunity for free money. Don’t miss out on these opportunities to increase your winnings!

Magyar nyelvű játékok a Energy Win Online Casino-ban

Tudjátok, hogy a Energy Win Online Casino-ban megtalálhatók a Magyar nyelvű játékok is? Ezek a játékok kifejezetten a magyar nyelvet beszélő játékosoknak vannak tervezve. A Magyar nyelvű játékok között megtalálhatók a kaszinó klasszikusai, például a blackjack, a roulette és a poker. Ezen kívül a Energy Win Online Casino-ban található magyar nyelvű játékok között számos slot is szerepel. A Magyar nyelvű játékok a Energy Win Online Casino-ban biztosítanak egy kényelmes és könnyen érthető játékot a magyar nyelvű játékosoknak.

Hogyan nyerhetsen ingyenes pénzt az Energy Win Online Casino-ban?

Ha keresite, hogyan nyerhetsen ingyenes pénzt az Energy Win Online Casino-ban, akkor próbálja ki a következőket:
1. Jelentkezzen fel az Energy Win Online Casino hírekhez és ajánlataihoz.
2. Veszélyes játékosoknak szánt támogatási programok is lehetőséget biztosítanak ingyenes pénzre.
3. Részt vegyen a rendszeres promóciókban és nyereményjátékokban, amelyek ingyenes pénzt kínálnak.
4. Fordítsa figyelmét a VIP programra, amely különböző előnyöket és ingyenes pénzt kínál a hűséges játékosoknak.
5. Ellenőrizze a webhelyen a naprakész akciós kódokat és ajánlatokat, amelyek esetleg ingyenes pénzt kínálnak.

Energy Win Online Casino: Gratis játékok és nyeremények

Ellátogass Energy Win Online Casino-hoz és élvezzen gratis játékainkat! Nyerj pénzjátékokon, mint például a kalandos Gonzo’s Quest vagy a klasszikus Starburst. Magyarországból is elérhető, biztonságos és szórakoztató. Regisztrálj ma és kapj egy nyereményes ajándékot! Ne hagyj pas el a lehetőséget, hogy nyerjön online kaszinó játékokkal!

Miért érdemes a Energy Win Online Casino-ban játszani?

Miért érdemes a Energy Win Online Casino-ban játszani?
• Nagy kiválasztásban részesülhettek a játékosok online játékokban.
• A casino biztonságos és megbízható, amint a licence is bizonyítja.
• Számos kedvezmény és promóció vár a játékosokra.
• A kiváló ügyfélservice folyamatosan támogatja a játékosokat.
• A mobilverzió lehetővé teszi a játék folyamatos követését bárhol, bármikor.

A Energy Win Online Casino legnépszerűbb magyar nyelvű játékaival

A Energy Win Online Casino a legnépszerűbb magyar nyelvű játékaival betérhet az oldalra és regisztrálhat, hogy azonnal kezdjen játszani a kedvenc játékaival! Itt található a klasszikus kaszinó játékok mellett számos egyéb játék is, amelyek közül mindenki megtalálhatja a kedvencét. A Energy Win Casino biztonságos és megbízható, a fizetési módozatok is sokfélék, így mindenki megtalálhatja a legmegfelelőbbét. A játékosok a régóta ismert és kedvelt játékok mellett újakat is kipróbálhatnak, és rengeteg nyereményt nyerhetnek. A Energy Win Online Casino mindig naprakész, és a legújabb technológiákat alkalmazza, hogy a játékosoknak a legjobb élményt nyújthassa!

Én, Zsófi, 26 éves személy, nagy rajongója vagyok a Energy Win Online Casino-nak. A platform felületének tisztasága, a könnyű használhatóság és a nagy kínálat mindig visszahoznak hozzám. Az elmúlt hónapokban több alkalommal is nyertem ingyenes pénzt a kaszinóban, ami nagyban hozzájárult a kaszinóélményemhez. A magyar nyelvű https://www.idoinfo.hu/#energycasino játékok is nagy előnyt jelentenek számomra, mert így könnyebben megértem a szabályokat és a játékmenetet. A Energy Win Online Casino-t mindenképpen ajánlom minden kaszinókedvelőnek!

János, 35 éves férfi vagyok, és nagy rajongója vagyok a kaszinójátékoknak. Az Energy Win Online Casino-ban töltött időm nagy részét a nyerje ingyenes pénzt Energy Win Online Casino-ban, magyar nyelven is elérhető játékokkal! Az elmúlt hónapokban több alkalommal is nyertem pénzt a kaszinóban, ami nagyban hozzájárult a kaszinóélményemhez. A magyar nyelvű játékok is nagy előnyt jelentenek számomra, mert így könnyebben megértem a szabályokat és a játékmenetet. A Energy Win Online Casino-t mindenképpen ajánlom minden kaszinókedvelőnek!

Gyakori kérdések a Energy Win Online Casino nyereményeiről

1. Hogyan nyerhetek ingyenes pénzt a Energy Win Online Casino-ban?
Tanulmányozzuk meg a kampányaikat és részesüljön elérhető ajánlatokban.

2. A játékok magyar nyelven is elérhetőek-sék a Energy Win Online Casino-ban?
Igen, a Energy Win Online Casino széles skálájú játékokat kínál magyar nyelven is.

3. Mennyi ideig érvényes a Energy Win Online Casino ingyenes pénz ajánlata?
A kampány időtartama attól függ, melyikre jelentkezel, figyeljen oda a feltételekre.

4. Hogyan vonható ki a Energy Win Online Casino-ból a nyeremény?
A kivonási módok a fiókom menüjében találhatóak, merjen kipróbálni!

Design and Develop by Ovatheme